package com.ruoyi.merchant.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 套餐对象 combos
 */
@Data
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Combo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 套餐ID */
    private Long comboId;

    /** 商家ID */
    @Excel(name = "商家ID")
    private Long merchantId;

    /** 套餐名称 */
    @Excel(name = "套餐名称")
    private String name;

    /** 描述 */
    @Excel(name = "描述")
    private String description;

    /** 图片 */
    @Excel(name = "图片URL")
    private String imageUrl;

    /** 市场价 */
    @Excel(name = "市场价")
    private BigDecimal marketPrice;

    /** 区域价 */
    @Excel(name = "区域价")
    private BigDecimal regionPrice;

    /** 状态：0-下架，1-上架 */
    @Excel(name = "状态", readConverterExp = "0=下架,1=上架")
    private Integer status;

    /** 排序 */
    @Excel(name = "排序")
    private Integer sortOrder;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deletedAt;

    /** 预留字段1 */
    private String externField1;

    /** 预留字段2 */
    private String externField2;

    /** 套餐包含的商品列表（非数据库字段） */
    private List<ComboProduct> products;
}
